package ar.edu.unq.edp.futbol.entregas;

import java.util.LinkedList;
import java.util.List;

import ar.edu.unq.edp.futbol.usuarios.UsuarioConsultor;

public class ConsultorEntrega5 implements Runnable {
	private String equipo1;
	private String equipo3;
	private String equipo2;
	private String equipo4;

	public ConsultorEntrega5(String equipo1, String equipo2, String equipo3,
			String equipo4) {
		this.equipo1 = equipo1;
		this.equipo2 = equipo2;
		this.equipo3 = equipo3;
		this.equipo4 = equipo4;
	}

	public void run() {
		System.out.println(ganadorCopa());
	}

	private String ganadorCopa() {
		List<String> ganadores = new LinkedList<String>();
		ganadores.add(ganadorDe(equipo1, equipo2));
		ganadores.add(ganadorDe(equipo1, equipo3));
		ganadores.add(ganadorDe(equipo1, equipo4));
		ganadores.add(ganadorDe(equipo2, equipo3));
		ganadores.add(ganadorDe(equipo2, equipo4));
		ganadores.add(ganadorDe(equipo3, equipo4));
		return mayorOcurrenciaEn(ganadores);
	}

	private String mayorOcurrenciaEn(List<String> ganadores) {
		int e1 = 0, e2 = 0, e3 = 0, e4 = 0;
		for (String current : ganadores) {
			if (current == equipo1)
				e1++;
			else if (current == equipo2)
				e2++;
			else if (current == equipo3)
				e3++;
			else
				e4++;
		}
		String result = "los resultados fueron: \n 	" + equipo1 + " gano " + e1
				+ "\n" + "	" + equipo2 + " gano " + e2 + "\n" + "	" + equipo3
				+ " gano " + e3 + "\n" + "	" + equipo4 + " gano " + e4 + "\n"

		;
		return result;
	}

	private String ganadorDe(String e1, String e2) {
		UsuarioConsultor userConsultor = new UsuarioConsultor(e1, e2);
		userConsultor.run();
		return userConsultor.getGanador();
	}
}
